﻿/*
1003 我要通过！ (20 分)
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件，系统就输出“答案正确”，否则输出“答案错误”。

得到“答案正确”的条件是：

字符串中必须仅有 P、 A、 T这三种字符，不可以包含其它字符；
任意形如 xPATx 的字符串都可以获得“答案正确”，其中 x 或者是空字符串，或者是仅由字母 A 组成的字符串；
如果 aPbTc 是正确的，那么 aPbATca 也是正确的，其中 a、 b、 c 均或者是空字符串，或者是仅由字母 A 组成的字符串。
现在就请你为 PAT 写一个自动裁判程序，判定哪些字符串是可以获得“答案正确”的。

输入格式：
每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n (<10)，是需要检测的字符串个数。接下来每个字符串占一行，字符串长度不超过 100，且不包含空格。

输出格式：
每个字符串的检测结果占一行，如果该字符串可以获得“答案正确”，则输出 YES，否则输出 NO。

输入样例：
8
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA
输出样例：
YES
YES
YES
YES
NO
NO
NO
NO
*/

#pragma warning(disable: 4267)
#pragma warning(disable: 4996)
#pragma warning(disable: 6031)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

namespace B1003 {
int main();


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int isAString(char* lp) {
	for (; *lp; lp++)
		if (*lp != 'A')
			return 0;
	return 1;
}

int isOk(const char* src) {
	char szBuffer[255];
	char* lb;
	char* lc;
	char* pend;
	char* a;

	strcpy(szBuffer, src);
	printf("%s ---> ", szBuffer);
	pend = szBuffer + strlen(szBuffer) - 1;
	if ((lb = strstr(szBuffer, "P")) == NULL)
		return 0;
	if ((lc = strstr(lb + 1, "T")) == NULL)
		return 0;
	if (*(lc - 1) != 'A')
		return 0;

	if (lc - lb == 2) {
		/* 基本型xPATx */
		if (lb - szBuffer == pend - lc) {
			if (lb - szBuffer == 0)
				return 1;
			*lb = 0;
			if ((strcmp(szBuffer, lc + 1) == 0) && isAString(szBuffer))
				return 1;
		}
		return 0;
	}
	else {
		*lb = 0;
		*(lc - 1) = 0;
		a = szBuffer;
		++lb;
		++lc;
		if (isAString(a) && isAString(lb) && isAString(lc)) {
			int i = strlen(a);
			int k = strlen(lc);
			if (k >= i) {
				*(lc + k - i) = 0;
				sprintf(szBuffer, "%sP%sT%s", a, lb, lc);
				return isOk(szBuffer);
			}
		}
		return 0;
	}
}

int main() {
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/PTA(Basic)/data/1003.txt", "r", stdin);
	int i, nn;
	char szBuffer[255];

	scanf("%d", &nn);
	for (i = 0; i < nn; i++) {
		scanf("%s", szBuffer);
		//printf("%s ---> ", szBuffer);
		if (isOk(szBuffer))
			printf("YES");
		else
			printf("NO");
		printf("\n");
	}

	return 0;
}
}

int main_B1003() {
	return B1003::main();
}